package com.ruoyi.fundmonitor.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 资金监控对象 info_fund_monitor
 * 
 * @author ruoyi
 * @date 2023-03-13
 */
public class InfoFundMonitor extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 项目id */
    private Long projectId;

    private Long projectTargetId;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 资金监控期间 */
    @Excel(name = "资金监控期间")
    private String monitorDration;

    @JsonFormat(pattern = "yyyy-MM")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date fundStartTime;
    @JsonFormat(pattern = "yyyy-MM")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date fundEndTime;

    /** 下达资金 */
    @Excel(name = "下达资金")
    private String passDownFund;

    /** 到位资金 */
    @Excel(name = "到位资金")
    private String arriveFund;

    /** 执行资金 */
    @Excel(name = "执行资金")
    private String executeFund;

    /** 资金执行率(执行资金/下达资金) */
    @Excel(name = "资金执行率(执行资金/下达资金)")
    private String executeRate;

    /** 状态(0待下达，1待提交，2审核中，3通过，4退回) */
    @Excel(name = "状态(0待下达，1待提交，2审核中，3通过，4退回)")
    private Long fundStatus;

    /** 佐证文件 */
    @Excel(name = "佐证文件")
    private String documentsFileName;

    /** 佐证文件地址 */
    @Excel(name = "佐证文件地址")
    private String documentsFileUrl;

    /** 审核意见 */
    @Excel(name = "审核意见")
    private String examineRemark;

    /** 主管单位id*/
    private Long departmentId;
    /** 实施单位id*/
    private Long implementationId;
    /** 主管单位名称*/
    private String departmentName;
    /** 实施单位名称*/
    private String implementationName;

    private Integer tag;

    private String workCompany;

    public String getWorkCompany() {
        return workCompany;
    }

    public void setWorkCompany(String workCompany) {
        this.workCompany = workCompany;
    }

    public Integer getTag() {
        return tag;
    }

    public void setTag(Integer tag) {
        this.tag = tag;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getImplementationName() {
        return implementationName;
    }

    public void setImplementationName(String implementationName) {
        this.implementationName = implementationName;
    }

    public Date getFundStartTime() {
        return fundStartTime;
    }

    public void setFundStartTime(Date fundStartTime) {
        this.fundStartTime = fundStartTime;
    }

    public Date getFundEndTime() {
        return fundEndTime;
    }

    public void setFundEndTime(Date fundEndTime) {
        this.fundEndTime = fundEndTime;
    }

    public Long getProjectTargetId() {
        return projectTargetId;
    }

    public void setProjectTargetId(Long projectTargetId) {
        this.projectTargetId = projectTargetId;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public Long getImplementationId() {
        return implementationId;
    }

    public void setImplementationId(Long implementationId) {
        this.implementationId = implementationId;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }
    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }
    public void setMonitorDration(String monitorDration) 
    {
        this.monitorDration = monitorDration;
    }

    public String getMonitorDration() 
    {
        return monitorDration;
    }
    public void setPassDownFund(String passDownFund)
    {
        this.passDownFund = passDownFund;
    }

    public String getPassDownFund()
    {
        return passDownFund;
    }
    public void setArriveFund(String arriveFund)
    {
        this.arriveFund = arriveFund;
    }

    public String getArriveFund()
    {
        return arriveFund;
    }
    public void setExecuteFund(String executeFund)
    {
        this.executeFund = executeFund;
    }

    public String getExecuteFund()
    {
        return executeFund;
    }
    public void setExecuteRate(String executeRate)
    {
        this.executeRate = executeRate;
    }

    public String getExecuteRate()
    {
        return executeRate;
    }
    public void setFundStatus(Long fundStatus) 
    {
        this.fundStatus = fundStatus;
    }

    public Long getFundStatus() 
    {
        return fundStatus;
    }
    public void setDocumentsFileName(String documentsFileName) 
    {
        this.documentsFileName = documentsFileName;
    }

    public String getDocumentsFileName() 
    {
        return documentsFileName;
    }
    public void setDocumentsFileUrl(String documentsFileUrl) 
    {
        this.documentsFileUrl = documentsFileUrl;
    }

    public String getDocumentsFileUrl() 
    {
        return documentsFileUrl;
    }
    public void setExamineRemark(String examineRemark) 
    {
        this.examineRemark = examineRemark;
    }

    public String getExamineRemark() 
    {
        return examineRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("projectName", getProjectName())
            .append("monitorDration", getMonitorDration())
            .append("passDownFund", getPassDownFund())
            .append("arriveFund", getArriveFund())
            .append("executeFund", getExecuteFund())
            .append("executeRate", getExecuteRate())
            .append("fundStatus", getFundStatus())
            .append("documentsFileName", getDocumentsFileName())
            .append("documentsFileUrl", getDocumentsFileUrl())
            .append("createTime", getCreateTime())
            .append("examineRemark", getExamineRemark())
            .toString();
    }
}
